package com.hspedu.Enum;

/**
 * @version 1.0
 * @author 彪哥
 *  演示Enum类的各种方法的使用
 */
public class EnumMethod {
    public static void main(String[] args) {
        //使用Season2 枚举类来演示各种方法
        Season2 autumn = Season2.AUTUMN;
        //输出枚举对象的名称
        System.out.println(autumn.name());
        //ordinal() 输出的是该枚举对象的次序/编号,从0开始编号 ->在Season2 枚举类中AUTUMN枚举对象在第三位 所以->
        System.out.println(autumn.ordinal());
        //从反编译可以看出 values()方法,返回 Season2[] 数组
        //数组中包含了所有的枚举对象
        Season2[] values = Season2.values();
        System.out.println("======遍历取出枚举对象（增强for循环）=======");
        for(Season2 season : values ){//增强for循环
            System.out.println(season);
        }

        //valueOf() 将字符串转换成枚举对象，要求字符串必须为已有的的变量名，否则报异常错误
        Season2 autumn1 = Season2.valueOf("AUTUMN");
        System.out.println(autumn1);

        //comparTo() 比较两个枚举常量，比较的是编号
        System.out.println(autumn.compareTo(Season2.SPRING));  //源码中的比较返回结果 return self.ordinal - other.ordinal;
    }
}
